source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "~>3.0"

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
gem "rails", "~> 8.0"
# Use postgresql as the database for Active Record
gem "pg", "~> 1.1"
# Use Puma as the app server
gem "puma", "5.6.9"
# Use SCSS for stylesheets
gem "sass-rails", ">= 6"
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem "webpacker", "6.0.0.rc.6"

gem "rack-cors", "~> 1.1.1"

gem "omniauth", "~> 2.0.2"
gem "omniauth-github", "~> 2.0.0"
gem "omniauth-google-oauth2", "~> 0.8.1"
gem "omniauth-orcid", "~> 2.1.1"
gem "omniauth-rails_csrf_protection", "~> 1.0.0"

gem "graphql", "~> 2.2.17"
gem "graphql-batch", "~>0.5.3"
gem "search_object_graphql", "1.0.5"

gem "scenic", "~>1.5.4"

# entrez symbol downloads
gem "net-ftp", "~>0.3.3"

# NCIt term download
gem "rubyzip", "~>2.3.2"

# higher performance json encoding
gem "oj", "~> 3.16.3"

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", ">= 1.4.4", require: false

gem "diffy", "~> 3.4.1"
gem "htmlentities", "~>4.3.4"

gem "active_storage_validations", "~> 0.9.2"
gem "image_processing", "~> 1.12.2"

gem "trestle", "~>0.9.5"
gem "trestle-search", "~>0.4.3"

# elasticsearch
gem "searchkick", "~> 5.3.0"
gem "elasticsearch", "~> 7.13.0"
gem "typhoeus", "~>1.4.0"

gem "audited", "~> 5.3"

# user comment rendering
gem "rinku", "~> 2.0.6"
gem "sanitize", "~> 6.0.2"
gem "kramdown", "~> 2.4.0"
# GitHub style markdown
gem "kramdown-parser-gfm", "~> 1.1.0"

gem "angular_rails_csrf", "~> 7.0.0"


gem "sidekiq", "< 8"
gem "sidekiq-cron", "~> 1.10.0"

gem "aws-sdk-s3", "~> 1.94.0"
gem "awesome_nested_set", "~> 3.6"
gem "obo", "~> 0.1.5"

gem "activejob-null", "~> 0.0.1"

gem "solid_errors", "~> 0.6.0"

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem "byebug", platforms: [ :mri, :mingw, :x64_mingw ]
  gem "pry"
  gem "pry-rails"
  gem "brakeman", require: false
  gem "rubocop-rails-omakase", require: false
end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem "web-console", ">= 4.1.0"
  # Display performance information such as SQL time and flame graphs for each request in your browser.
  # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
  gem "rack-mini-profiler", "~> 2.0"
  gem "listen", "~> 3.3"

  gem "capistrano", "~> 3.19.0"
  gem "capistrano-rails", "~> 1.6.1"
  gem "capistrano-rbenv", "~> 2.2.0"

  # required for ssh tasks
  gem "ed25519"
  gem "bcrypt_pbkdf"

  gem "solargraph"
  gem "solargraph-rails"

  gem "dockerfile-rails", ">= 1.5"
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem "capybara", ">= 3.26"
  gem "simplecov"
  gem "simplecov-lcov"
end

gem "csv", "~> 3.3"
